'''需求
 1.士兵 许三多 有一把 AK47
 2.士兵 可以 开火
 3.枪 能够 发射 子弹
 4.枪 装填 装填子弹 —— 增加子弹数量
 2021-8-13 Nasa
'''
import time


class Gun:
    def __init__(self, name, bullet):
        self.name = name
        self.bullet = bullet

    def fire(self, n):
        if self.bullet > n:
            self.bullet -= n
            print(f'已发射{n}个子弹,还剩{self.bullet}个子弹')
        else:
            self.load(n)
            self.bullet-=n
            print(f'已发射{n}个子弹,还剩{self.bullet}个子弹')

    def load(self, n):
        print('正在填充,请稍候...')
        time.sleep(1)
        self.bullet += n
        print(f'填充成功,填充了{n}个子弹,一共{self.bullet}个子弹')

    def __str__(self):
        return f'name: {self.name},bullet: {self.bullet}'


class Bing:
    def __init__(self, name, qiang):
        self.name = name
        self.qiang = qiang

    def shoot(self, n):
        self.qiang.fire(n)


if __name__ == '__main__':
    xgun = Gun('ak47', 12)
    xusadu = Bing('许三多', xgun)
    xusadu.shoot(5)
    xusadu.shoot(5)
    xusadu.shoot(5)
    print(xgun)
    print(xusadu.qiang)
